دالة SORTBY في Excel

دوال البحث والمراجع / دوال المصفوفة الديناميكية

الغرض من الدالة

دالة SORTBY تمنحك مرونة فائقة في الفرز. تسمح لك بفرز نطاق بيانات معين، ولكن ليس بالضرورة بناءً على قيمه الخاصة، بل بناءً على قيم موجودة في نطاق أو نطاقات أخرى. هذا يعني أنه يمكنك ترتيب قائمة بناءً على معايير موجودة في قائمة منفصلة تماماً، مما يحافظ على سلامة البيانات الأصلية.

هذه الدالة تؤدي نفس النتائج التي يمكنك تطبيقها من خلال خيار فرز وتصفية الموجود في القائمة الرئيسية في Excel, والذي فيه 'فرز مخصص' واختيار فرز حسب الأعمدة ولكن مع فارق بسيط يعطيها القوة اكثر, وهو إمكانية الفرز خارج النطاق المحدد. حيث يمكن فرز مجال بناء على مجال آخر منفصل.

صيغة الدالة (Syntax)

SORTBY(array, by_array1, [sort_order1], [by_array2, sort_order2], ...)
  • array: النطاق أو المصفوفة التي ترغب في فرزها. هذه هي البيانات التي سيتم تغيير ترتيبها.
  • by_array1: النطاق أو المصفوفة التي تحتوي على القيم التي تريد الفرز بناءً عليها. هذه القيم هي التي ستحدد الترتيب.
  • [sort_order1]: (اختياري) رقم يحدد ترتيب الفرز لـ by_array1: 1 لفرز تصاعدي (افتراضي)، -1 لفرز تنازلي.
  • [by_array2, sort_order2], ...: (اختياري) يمكنك إضافة أزواج إضافية من النطاقات/المصفوفات وترتيب الفرز لتطبيق فرز ثانوي، ثم فرز ثالث، وهكذا.

أمثلة عملية

المثال 1: فرز أسماء الطلاب حسب درجاتهم

لدينا قائمة بأسماء الطلاب في العمود A وقائمة منفصلة بدرجاتهم في العمود B. نريد فرز أسماء الطلاب بحيث تظهر الأسماء بترتيب تنازلي لدرجاتهم (من الأعلى للأدنى).

ABCD
1الاسمالعلامةفرز تنازلي
2علي85فاطمة
3فاطمة92
4خالد78

الصيغة المستخدمة:

=SORTBY(A2:A4, B2:B4, -1)

توضيح:

الدالة قامت بفرز الأسماء في النطاق A1:A3 بناءً على الدرجات في النطاق B1:B3 بترتيب تنازلي.

المثال 2: فرز حسب أكثر من عمود

لدينا قائمة بأسماء الموظفين في شركة لإنتاج نكاشات الأسنان الاصلية. تريد الشركة حساب أولوية توصيل العاملين صباحاً بناء على (العمر) الذي له الأولوية القصوى (الأكبر سناً له الأولوية) ثم بناء على بعدهم عن مقر الشركة (الأبعد له الأولوية).

ABCDEFG
1الاسمالعمرالمسافةالأولويةالعمرالمسافة
2Ahmed333Sami
3Sami395
4Rasha2310
5Sara2320

الصيغة المستخدمة:

=SORTBY(A2:C5, B2:B5, -1, C2:C5, -1)

توضيح:

مجال الترتيب array هو A2:C5 (ويمكننا وضع A2:C2 إذا كان يهمنا النتيجة فقط بدون توضيح أسباب الفرز).
مجال التريب الأول هو العمر وبالتالي ضمن النطاق B2:B5. والترتيب تنازلي, حيث الأكبر سنا له الأولوية لذا يكون sort_order1 = -1
مجال التريب الثاني هو البعد, وبالتالي ضمن النطاق C2:C5. والترتيب تنازلي أيضاً, لأن الأبعد له الأولوية لذا يكون sort_order2 = -1
الآن نلاحظ أن سامي له الأولوية لأنه الأكبر سناً 39. ثم أحمد 33 ثم رشا وسارة 23 لا فرق. بين عمريهن.
وفي الترتيب الثاني حجز سامي وأحمد الأولوية بسبب العمر رغم قرب المسافة. وأخذت رشا الأولوية على سارة لأنها الأبعد على مقر الشركة 20 كم.